package com.safeneeds.sysmana.entity.dao.impl;

import java.util.List;

import com.safeneeds.sysmana.entity.SysFunc;
import com.safeneeds.sysmana.entity.dao.ISysFuncDao;
import com.safeneeds.util.base.BaseHibernateDao;

import config.Constant;

/**
 * 系统功能Dao
 * @author gaof
 * @date 2016年4月17日
 */
public class SysFuncDao extends BaseHibernateDao<SysFunc, Integer> implements ISysFuncDao {

	/**
	 * 添加系统功能
	 * @param func
	 */
	@Override
	public void addOrUpdateFunc(SysFunc func) {
		this.updateEntity(func);
	}

	/**
	 * 加载所有功能
	 * @return
	 */
	@Override
	public List<SysFunc> loadAllFunc() {
		return this.loadAll();
	}

	/**
	 * 通过pid获取功能列表
	 * @param id
	 * @return
	 */
	@Override
	public List<SysFunc> listFuncByPid(Integer id) {
		return this.getEntities("FROM SysFunc WHERE pId = " + id);
	}

	/**
	 * 删除功能列表
	 * @param listFunc
	 */
	@Override
	public void delFuncs(List<SysFunc> listFunc) {
		this.deleteAll(listFunc);
	}

	/**
	 * 获取所有需要授权的功能
	 * @return
	 */
	@Override
	public List<SysFunc> listFuncNeedAuth() {
		return this.getEntities("From SysFunc where acceType = " + Constant.SYS_FUNC_TYPE_AUTH);
	}

	/**
	 * 添加功能
	 * @param sysFunc
	 * @return
	 */
	@Override
	public SysFunc addFunc(SysFunc sysFunc) {
		return this.saveEntity(sysFunc);
	}
	
}
